home *** CD-ROM | disk | FTP | other *** search
- /* *******************************************************************************
- *
- * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
- * the contents of this file may not be disclosed to third parties, copied or
- * duplicated in any form, in whole or in part, without the prior written
- * permission of Silicon Graphics, Inc.
- *
- * RESTRICTED RIGHTS LEGEND:
- * Use, duplication or disclosure by the Government is subject to restrictions
- * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
- * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
- * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
- * rights reserved under the Copyright Laws of the United States.
- *
- ******************************************************************************* */
- #include <math.h>
- #include <sys/types.h>
- #include <malloc.h>
- #include <stdlib.h>
-
- #ifndef _SGI_FFT_
- #define _SGI_FFT_
-
- #define FACTOR_SPACE 15
- /* *******************************************************
- Complex structures definitions
- ******************************************************* */
-
- typedef struct {
- float re;
- float im;
- } complex;
-
- typedef struct {
- double re;
- double im;
- } zomplex;
-
-
- /* *******************************************************
- C Functions prototypes
- ******************************************************* */
- /* *******************************************************
- complex <---> complex FFTs
- ******************************************************* */
- complex *cfft1di( int n, complex *save);
- int cfft1d( int job, int n, complex *array, int inc, complex *save);
-
- complex *cfft2di( int n1, int n2, complex *save);
- int cfft2d( int job, int n1, int n2, complex *array, int ld, complex *save);
-
- complex *cfft3di( int n1, int n2, int n3, complex *save);
- int cfft3d( int job, int n1, int n2, int n3, complex *array, int ld1, int ld2, complex *save);
-
-
- /* *******************************************************
- zomplex <---> zomplex FFTs
- ******************************************************* */
- zomplex *zfft1di( int n, zomplex *save);
- int zfft1d( int job, int n, zomplex *array, int inc, zomplex *save);
-
- zomplex *zfft2di( int n1, int n2, zomplex *save);
- int zfft2d( int job, int n1, int n2, zomplex *array, int ld, zomplex *save);
-
- zomplex *zfft3di( int n1, int n2, int n3, zomplex *save);
- int zfft3d( int job, int n1, int n2, int n3, zomplex *array, int ld1, int ld2, zomplex *save);
-
-
- /* *******************************************************
- real <---> complex FFTs
- ******************************************************* */
- float *sfft1di( int n, float *save);
- int sfft1d( int job, int n, float *array, int inc, float *save);
-
- float *sfft2di( int n1, int n2, void *save);
- int sfft2d( int job, int n1, int n2, void *array, int ld, void *save);
-
- float *sfft3di( int n1, int n2, int n3, void *save);
- int sfft3d( int job, int n1, int n2, int n3, void *array, int ld1, int ld2, void *save);
-
-
- /* *******************************************************
- double <---> zomplex FFTs
- ******************************************************* */
- double *dfft1di( int n, double *save);
- int dfft1d( int job, int n, double *array, int inc, double *save);
-
- double *dfft2di( int n1, int n2, void *save);
- int dfft2d( int job, int n1, int n2, void *array, int ld, void *save);
-
- double *dfft3di( int n1, int n2, int n3, void *save);
- int dfft3d( int job, int n1, int n2, int n3, void *array, int ld1, int ld2, void *save);
-
-
- /* *******************************************************
- Fortran Subroutines prototypes
- ******************************************************* */
- /* *******************************************************
- complex <---> complex FFTs
- ******************************************************* */
- void cfft1di_( int *n, complex *save);
- int cfft1d_( int *job, int *n, complex *array, int *inc, complex *save);
-
- void cfft2di_( int *n1, int *n2, complex *save);
- void cfft2d_( int *job, int *n1, int *n2, complex *array, int *ld, complex *save);
-
- void cfft3di_( int *n1, int *n2, int *n3, complex *save);
- void cfft3d_( int *job, int *n1, int *n2, int *n3, complex *array, int *ld1, int *ld2, complex *save);
-
- /* ****************************
- zomplex <---> zomplex FFTs
- **************************** */
- void zfft1di_( int *n, zomplex *save);
- void zfft1d_( int *job, int *n, zomplex *array, int *inc, zomplex *save);
-
- void zfft2di_( int *n1, int *n2, zomplex *save);
- void zfft2d_( int *job, int *n1, int *n2, zomplex *array, int *ld, zomplex *save);
-
- void zfft3di_( int *n1, int *n2, int *n3, zomplex *save);
- void zfft3d_( int *job, int *n1, int *n2, int *n3, zomplex *array, int *ld1, int *ld2, zomplex *save);
-
- /* ********************************************************
- real <---> complex FFTs
- ******************************************************** */
- void *sfft1di_( int *n, float *save);
- int *sfft1d_( int *job, int *n, float *array, int *inc, float *save);
-
- void *sfft2di_( int *n1, int *n2, void *save);
- int *sfft2d_( int *job, int *n1, int *n2, void *array, int *ld, void *save);
-
- void *sfft3di_( int *n1, int *n2, int *n3, void *save);
- int *sfft3d_( int *job, int *n1, int *n2, int *n3, void *array, int *ld1, int *ld2, void *save);
-
- /* ********************************************************
- double <---> zomplex FFTs
- ******************************************************** */
- void *dfft1di_( int *n, double *save);
- int *dfft1d_( int *job, int *n, double *array, int *inc, double *save);
-
- void *dfft2di_( int *n1, int *n2, void *save);
- int *dfft2d_( int *job, int *n1, int *n2, void *array, int *ld, void *save);
-
- void *dfft3di_( int *n1, int *n2, int *n3, void *save);
- int *dfft3d_( int *job, int *n1, int *n2, int *n3, void *array, int *ld1, int *ld2, void *save);
-
- #endif
-